package jdk8.interfacedefault;

import jdk8.interfacedefault.impl.Cat;
import jdk8.interfacedefault.impl.CatImpl;

/**
 * Description: jdk1.8新特性：接口的默认方法
 * Java 8允许我们给接口添加一个非抽象的方法实现，只需要使用 default关键字即可，这个特征又叫做扩展方法。
 * Java 8使用两个新概念扩展了接口的含义：默认方法和静态方法。默认方法使得接口有点类似Scala的traits（不是很了解），不过要实现的目标不一样。
 * 默认方法使得开发者可以在 不破坏二进制兼容性的前提下，往现存接口中添加新的方法，即不强制那些实现了该接口的类也同时实现这个新加的方法。
 * 默认方法和抽象方法之间的区别在于抽象方法需要实现，而默认方法不需要。
 * 
 * 个人认为：很有用呀，这样做在接口的时候，就可以设计一些不会变动的常量或者方法了，然后使用者可以根据场景再对其进行重写
 * @author Kwum
 * @date 2017年6月28日 上午11:06:46
 * @version 1.0
 */

public class Run {

    public static void main(String[] args) {
        
        Cat cat = new CatImpl();
        //实现的方法
        System.out.println(cat.meow());
        
        //接口中默认的方法
        System.out.println(cat.meoww());
    }

}
